<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>FindProducer &mdash; CMake 4.1.1 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a2c47e09" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css?v=4d06bd55" />
    
    <script src="../_static/documentation_options.js?v=e6a937a4"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    
    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="FindProtobuf" href="FindProtobuf.html" />
    <link rel="prev" title="FindPostgreSQL" href="FindPostgreSQL.html" />
 

  </head><body>
    <input id="sidebar-check" type="checkbox" />
    <label id="sidebar-overlay" for="sidebar-check"></label>



    <div class="related relbar1" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="FindProtobuf.html" title="FindProtobuf"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="FindPostgreSQL.html" title="FindPostgreSQL"
             accesskey="P">previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">FindProducer</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="findproducer">
<span id="module:FindProducer"></span><h1>FindProducer<a class="headerlink" href="#findproducer" title="Link to this heading">¶</a></h1>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Producer (also known as <em>Open Producer</em>) library originated from the
osgProducer utility library in early versions of the OpenSceneGraph toolkit
and was later developed into a standalone library.  The osgProducer was
eventually replaced by the osgViewer library, and the standalone Producer
library became obsolete and is no longer maintained.  For details about
OpenSceneGraph usage, refer to the <span class="target" id="index-0-module:FindOpenSceneGraph"></span><a class="reference internal" href="FindOpenSceneGraph.html#module:FindOpenSceneGraph" title="FindOpenSceneGraph"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindOpenSceneGraph</span></code></a> module.</p>
</div>
<p>This module finds the Producer library, a windowing and event handling library
designed primarily for real-time graphics applications.</p>
<p>Producer library headers are intended to be included in C++ project source code
as:</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text"><code class="docutils literal notranslate"><span class="pre">example.cxx</span></code></span><a class="headerlink" href="#id1" title="Link to this code">¶</a></div>
<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;Producer/CameraGroup&gt;</span>
</pre></div>
</div>
</div>
<section id="result-variables">
<h2>Result Variables<a class="headerlink" href="#result-variables" title="Link to this heading">¶</a></h2>
<p>This module defines the following variables:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">Producer_FOUND</span></code></dt><dd><p>Boolean indicating whether Producer is found.  For backward compatibility, the
<code class="docutils literal notranslate"><span class="pre">PRODUCER_FOUND</span></code> variable is also set to the same value.</p>
</dd>
</dl>
</section>
<section id="cache-variables">
<h2>Cache Variables<a class="headerlink" href="#cache-variables" title="Link to this heading">¶</a></h2>
<p>The following cache variables may also be set:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">PRODUCER_INCLUDE_DIR</span></code></dt><dd><p>The include directory containing headers needed to use Producer.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">PRODUCER_LIBRARY</span></code></dt><dd><p>The path to the Producer library needed to link against for usage.</p>
</dd>
</dl>
</section>
<section id="hints">
<h2>Hints<a class="headerlink" href="#hints" title="Link to this heading">¶</a></h2>
<p>This module accepts the following variables:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">PRODUCER_DIR</span></code></dt><dd><p>Environment variable that can be set to help locate a custom installation of
the Producer library.  It should point to the root directory where the
Producer library was installed.  This should match the installation prefix
used when configuring and building Producer, such as with
<code class="docutils literal notranslate"><span class="pre">./configure</span> <span class="pre">--prefix=$PRODUCER_DIR</span></code>.</p>
</dd>
</dl>
<p>Because Producer was historically tightly integrated with OpenSceneGraph, this
module also accepts the following environment variables as equivalents to
<code class="docutils literal notranslate"><span class="pre">PRODUCER_DIR</span></code> for convenience to specify common installation root for
multiple OpenSceneGraph-related libraries at once:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">OSGDIR</span></code></dt><dd><p>Environment variable treated the same as <code class="docutils literal notranslate"><span class="pre">PRODUCER_DIR</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">OSG_DIR</span></code></dt><dd><p>Environment variable treated the same as <code class="docutils literal notranslate"><span class="pre">PRODUCER_DIR</span></code>.</p>
</dd>
</dl>
</section>
<section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Link to this heading">¶</a></h2>
<p>Finding the Producer library and creating an <a class="reference internal" href="../manual/cmake-buildsystem.7.html#imported-targets"><span class="std std-ref">imported target</span></a> that encapsulates its usage requirements for linking to a
project target:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">find_package(</span><span class="nb">Producer</span><span class="nf">)</span>

<span class="nf">if(</span><span class="nb">Producer_FOUND</span><span class="w"> </span><span class="no">AND</span><span class="w"> </span><span class="no">NOT</span><span class="w"> </span><span class="no">TARGET</span><span class="w"> </span><span class="nb">Producer</span><span class="o">::</span><span class="nb">Producer</span><span class="nf">)</span>
<span class="w">  </span><span class="nf">add_library(</span><span class="nb">Producer</span><span class="o">::</span><span class="nb">Producer</span><span class="w"> </span><span class="no">INTERFACE</span><span class="w"> </span><span class="no">IMPORTED</span><span class="nf">)</span>
<span class="w">  </span><span class="nf">set_target_properties(</span>
<span class="w">    </span><span class="nb">Producer</span><span class="o">::</span><span class="nb">Producer</span>
<span class="w">    </span><span class="no">PROPERTIES</span>
<span class="w">      </span><span class="no">INTERFACE_INCLUDE_DIRECTORIES</span><span class="w"> </span><span class="s">&quot;${PRODUCER_INCLUDE_DIR}&quot;</span>
<span class="w">      </span><span class="no">INTERFACE_LINK_LIBRARIES</span><span class="w"> </span><span class="s">&quot;${PRODUCER_LIBRARY}&quot;</span>
<span class="w">  </span><span class="nf">)</span>
<span class="nf">endif()</span>

<span class="nf">target_link_libraries(</span><span class="nb">example</span><span class="w"> </span><span class="no">PRIVATE</span><span class="w"> </span><span class="nb">Producer</span><span class="o">::</span><span class="nb">Producer</span><span class="nf">)</span>
</pre></div>
</div>
</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3>Table of Contents</h3>
    <ul>
<li><a class="reference internal" href="#">FindProducer</a><ul>
<li><a class="reference internal" href="#result-variables">Result Variables</a></li>
<li><a class="reference internal" href="#cache-variables">Cache Variables</a></li>
<li><a class="reference internal" href="#hints">Hints</a></li>
<li><a class="reference internal" href="#examples">Examples</a></li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="FindPostgreSQL.html"
                          title="previous chapter">FindPostgreSQL</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="FindProtobuf.html"
                          title="next chapter">FindProtobuf</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/module/FindProducer.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="FindProtobuf.html" title="FindProtobuf"
             >next</a> |</li>
        <li class="right" >
          <a href="FindPostgreSQL.html" title="FindPostgreSQL"
             >previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">FindProducer</a></li> 
      </ul>
    </div>

    <div class="footer" role="contentinfo">
    &#169; Copyright 2000-2025 Kitware, Inc. and Contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3.
    </div>
<script type="text/javascript">
(function() {
  "use strict";
  const hide = () => document.getElementById("sidebar-check").checked = false;
  addEventListener("keydown", e => (e.key === "Escape") && hide());
  addEventListener("click", e => (e.target.tagName === "A") && hide());
  addEventListener("hashchange", hide)
})();
</script>
  </body>
</html>